home *** CD-ROM | disk | FTP | other *** search
/ C & C++ Multimedia Cyber Classroom / C and C++ Multimedia Cyber Classroom (Prentice Hall) (1998).iso / src / fig20_33.jar / Ch20 / Fig20_33 / fig20_33.cpp
C/C++ Source or Header  |  1997-11-11  |  1KB  |  47 lines

  1. // Fig. 20.33: fig20_33.cpp
  2. // Demonstrates miscellaneous functions: copy_backward, merge,
  3. // unique and reverse.
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.    const int SIZE = 5;
  13.    int a1[ SIZE ] = { 1, 3, 5, 7, 9 };
  14.    int a2[ SIZE ] = { 2, 4, 5, 7, 9 };
  15.    vector< int > v1( a1, a1 + SIZE );
  16.    vector< int > v2( a2, a2 + SIZE );
  17.  
  18.    ostream_iterator< int > output( cout, " " );
  19.  
  20.    cout << "Vector v1 contains: ";
  21.    copy( v1.begin(), v1.end(), output );
  22.    cout << "\nVector v2 contains: ";
  23.    copy( v2.begin(), v2.end(), output );
  24.  
  25.    vector< int > results( v1.size() );
  26.    copy_backward( v1.begin(), v1.end(), results.end() );
  27.    cout << "\n\nAfter copy_backward, results contains: ";
  28.    copy( results.begin(), results.end(), output );
  29.    
  30.    vector< int > results2( v1.size() + v2.size() );
  31.    merge( v1.begin(), v1.end(), v2.begin(), v2.end(),
  32.           results2.begin() );
  33.    cout << "\n\nAfter merge of v1 and v2 results2 contains:\n";
  34.    copy( results2.begin(), results2.end(), output );
  35.    
  36.    vector< int >::iterator endLocation;
  37.    endLocation = unique( results2.begin(), results2.end() );
  38.    cout << "\n\nAfter unique results2 contains:\n";
  39.    copy( results2.begin(), endLocation, output );
  40.    
  41.    cout << "\n\nVector v1 after reverse: ";
  42.    reverse( v1.begin(), v1.end() );
  43.    copy( v1.begin(), v1.end(), output );
  44.  
  45.    cout << endl;
  46.    return 0;
  47. }